package com.oss.utils.constants;

import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.weixin.sdk.api.ApiConfig;

/**
 * 数据字典
 *
 * @author czjcz
 */
public class DataDictionary {

    /*
     * 配置文件
     */
    public static Prop getProp() {
        return PropKit.use("a_little_config.txt");
    }

    /**
     * 如果要支持多公众账号，只需要在此返回各个公众号对应的 ApiConfig 对象即可 可以通过在请求 url 中挂参数来动态从数据库中获取
     * ApiConfig 属性值
     */
    public ApiConfig getApiConfig() {

        Prop prop = getProp();

        ApiConfig ac = new ApiConfig();

        // 配置微信 API 相关常量
        ac.setToken(prop.get("token"));
        ac.setAppId(prop.get("appId"));
        ac.setAppSecret(prop.get("appSecret"));

        /**
         * 是否对消息进行加密，对应于微信平台的消息加解密方式： 1：true进行加密且必须配置 encodingAesKey
         * 2：false采用明文模式，同时也支持混合模式
         */
        ac.setEncryptMessage(prop.getBoolean("encryptMessage", false));
        ac.setEncodingAesKey(prop.get("encodingAesKey", "setting it in config file"));
        return ac;
    }

    /**
     * 状态代码
     */
    public static final Integer SUCCESS = 0;// 成功
    public static final Integer FAILURE = -1;// 失败
    public static final Integer UNLOGIN = 10101;// 没登录


    /*
     * jwt
     */
    public static final String JWT_KEY_USER_ID = "userId";
    public static final String JWT_KEY_NAME = "name";
    /*
     * 上下文
     */
    public static final String CONTEXT_KEY_USER_ID = "currentUserId";
    public static final String CONTEXT_KEY_USERNAME = "currentUserName";
    public static final String CONTEXT_KEY_USER_NAME = "currentUser";
    public static final String CONTEXT_KEY_USER_TOKEN = "currentUserToken";

}
